Communication devices, such as portable radios, cellular telephones, pagers, and the like, offer sophisticated features, some requiring complex user interaction. Generally, a user interface for a communication device includes input devices, such as control knobs, buttons, and switches, and output devices such as a display, a speaker, annunciators, and so on. A user interacts with the communication device through the user interface to operate various device features. The user interface is also used to communicate status information regarding device operations. Ordinarily, the user interface operates under control of software executed by a microprocessor within the communication device. The software required to control the user interface, and to arbitrate priority for the various input and output devices to support multiple features, can be quite complex.
Prior art communication devices are known in which software is organized to execute within a microprocessor controlled radio operating environment to provide user interface control. One such example is described in U.S. Pat. No. 5,490,275, issued to Sandvos, et al. on Feb. 6, 1996, for a VIRTUAL RADIO INTERFACE AND RADIO OPERATING SYSTEM FOR A COMMUNICATION DEVICE, the entire contents of which are hereby incorporated by reference. Here, radio operating software is divided into a number of levels, including an ergonomics/control level 302, and a feature/protocol level 310. The ergonomics/control level 302 provide functionality for input and output devices of the user interface. The feature/protocol level 310 also provides for some control of the user interface, particularly for those features requiring interaction with the user. While this system implements various interfaces to aid in software portability, the resultant architecture may prove inadequate to meet the increasing demands for software portability in radio products.
It is desirable to provide for a software architecture that enables substantial portability and ease of maintenance for user interface software used in communication devices. Therefore, a new software architecture suitable for controlling the user interface of a communication device is needed.